/* Copyright (C) 2024 wlly-lzh
 * Created On 24/03/19
 * Sequence List Stack  基于顺序表的栈
 * */
#ifndef _SEQSTACK_H
#define _SEQSTACK_H

#include <stdbool.h>
typedef struct LSeqStack LSeqStack;
struct LSeqStack {};

LSeqStack *Create_LSeqStack(int length);

bool Push_LSeqStack(LSeqStack *Stack, void *Data);

bool Pop_LSeqStack(LSeqStack *Stack, void **Data);

bool GetTop(LSeqStack *Stack, void **Data);

void Clear_LSeqStack(LSeqStack *Stack);

void Destroy_LSeqStack(LSeqStack **Stack);

bool IsEmpty_LSeqStack(const LSeqStack *Stack);

bool IsFull_LSeqStack(const LSeqStack *Stack);

int Size_LSeqStack(const LSeqStack *Stack);

int MaxSize_LSeqStack(const LSeqStack *Stack);

#endif // _SEQSTACK_H
